/**
* Copyright 2012 nabla
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*
*/
package com.nabla.wapp.client.ui.form;

import com.nabla.wapp.client.ui.TitleDecoder;
import com.nabla.wapp.client.ui.TreeGrid;
import com.smartgwt.client.types.TitleOrientation;
import com.smartgwt.client.widgets.form.fields.CanvasItem;


public class TreeGridItem extends TreeGrid implements IFormItem<CanvasItem> {

	private String		name;
	private int		colSpan = 2;
	private boolean	endRow = true;
	private CanvasItem	impl;

	public TreeGridItem() {
		super();
	}

	public void setColSpan(int colSpan) {
		this.colSpan = colSpan;
	}

	public int getColSpan() {
		return colSpan;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public boolean isEndRow() {
		return endRow;
	}

	public void setEndRow(boolean endRow) {
		this.endRow = endRow;
	}

	@Override
	public CanvasItem getImpl() {
		if (impl == null) {
			impl = new CanvasItem();
			impl.setName(getName());
			impl.setShouldSaveValue(true);
			impl.setTitleOrientation(TitleOrientation.TOP);
			final String w = getWidthAsString();
			if (w != null)
				impl.setWidth(w);
			final String h = getHeightAsString();
			if (h != null)
				impl.setHeight(h);
			impl.setCanvas(this);
			final String title = getTitle();
			if (title != null)
				new TitleDecoder(title).apply(impl);
			impl.setColSpan(getColSpan());
			impl.setEndRow(isEndRow());
		}
		return impl;
	}
}
